{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Most common words (+UNK) [['UNK', 1194], ('。', 149620), ('\\n', 117070), ('，', 108451), ('、', 19612)]\n",
      "Sample data [1503, 1828, 2, 2, 40, 613, 47, 9, 111, 117] ['潘', '阆', '\\n', '\\n', '酒', '泉', '子', '（', '十', '之']\n",
      "1828 阆 -> 1503 潘\n",
      "1828 阆 -> 2 \n",
      "\n",
      "2 \n",
      " -> 1828 阆\n",
      "2 \n",
      " -> 2 \n",
      "\n",
      "2 \n",
      " -> 2 \n",
      "\n",
      "2 \n",
      " -> 40 酒\n",
      "40 酒 -> 2 \n",
      "\n",
      "40 酒 -> 613 泉\n",
      "WARNING:tensorflow:From <ipython-input-1-77c0b314ef54>:215: calling reduce_sum (from tensorflow.python.ops.math_ops) with keep_dims is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "keep_dims is deprecated, use keepdims instead\n",
      "Initialized\n",
      "Average loss at step  0 :  215.45150756835938\n",
      "Nearest to 看: 蚁, 贝, 睇, 躅, 镕, 脍, 心, 甥,\n",
      "Nearest to 东: 凉, 氛, 惜, 敕, 沔, 昵, 姿, 蟠,\n",
      "Nearest to 得: 筱, 劝, 匮, 约, 鞚, 炼, 倩, 或,\n",
      "Nearest to 三: 拳, 》, 收, 榴, 选, 遂, 升, 史,\n",
      "Nearest to 江: 给, 挂, 浃, 旄, 娴, 假, 槽, 闰,\n",
      "Nearest to 醉: 攸, 浏, 捧, 阿, 嘶, 矮, 酡, 茂,\n",
      "Nearest to 来: 庖, 歔, 皈, 篪, 紫, 布, 蛤, 当,\n",
      "Nearest to 前: 岷, 嬴, 这, 亮, 魄, 璈, 篪, 镵,\n",
      "Nearest to 红: 禽, 沃, 野, , 肉, 世, 屐, 蔻,\n",
      "Nearest to 楼: 蓄, 剔, 轲, 屐, 骆, 账, 敛, 繁,\n",
      "Nearest to UNK: 样, 标, 稍, 嵩, 互, 亹, 幸, 奠,\n",
      "Nearest to 多: 乐, 醇, 琥, 鬅, 捎, 喷, 裴, 椹,\n",
      "Nearest to 愁: 廖, 骝, 杜, 摭, 咽, 庸, 漙, 攒,\n",
      "Nearest to 梅: 遣, 患, 言, 吏, 酽, 桥, 茫, 珈,\n",
      "Nearest to 中: 俜, 可, 发, 徐, 媲, 散, 朗, 趁,\n",
      "Nearest to 行: 值, 镗, 画, 蓼, 胃, 卜, 泯, 较,\n",
      "Average loss at step  2000 :  21.430812053322793\n",
      "Average loss at step  4000 :  5.309765087485314\n",
      "Average loss at step  6000 :  4.903854294776917\n",
      "Average loss at step  8000 :  4.677815969467163\n",
      "Average loss at step  10000 :  4.5982193582654\n",
      "Nearest to 看: 蚁, 贝, 尖, 脍, 睇, 心, 镕, 挹,\n",
      "Nearest to 东: 凉, 氛, 蟠, 昵, 姿, 婷, 高, 寰,\n",
      "Nearest to 得: 劝, 约, 谪, 倩, 才, 未, 冽, 或,\n",
      "Nearest to 三: 收, 榴, 史, 拳, 》, 遂, 卮, 钟,\n",
      "Nearest to 江: 挂, 槽, 闰, 给, 假, 浃,  , 冥,\n",
      "Nearest to 醉: 阿, 嘶, 捧, 趁, 心, 蜗, 尽, 攸,\n",
      "Nearest to 来: 布, 去, 乞,  , 郑, 偿, 五, 艺,\n",
      "Nearest to 前: 岷, 魄, 这, 篪,  , 懒, 璈, 嬴,\n",
      "Nearest to 红: 禽, 沃, 野, 肉, 耿, 屐, 岧, 菊,\n",
      "Nearest to 楼: 屐, 剔, 沸, 轲, 贤, 迓, 咫, 惆,\n",
      "Nearest to UNK: 样, 标, 幸, 稍, 嵩, 互, 护, 渚,\n",
      "Nearest to 多: 乐, 命, 裴, 醇, 樽, 土, 散, 疑,\n",
      "Nearest to 愁: 廖, 郎, 也, 骝, 咽, 杜, 攒, 漙,\n",
      "Nearest to 梅: 遣, 桥, 言, 患, 嘉, 续, 压, 茫,\n",
      "Nearest to 中: 徐, 可, 散,  , 阜, 识, 溢, 振,\n",
      "Nearest to 行: 值, 卜, 蓼, 泯, 画, 牡, 坠, 较,\n",
      "Average loss at step  12000 :  4.5752944912910465\n",
      "Average loss at step  14000 :  4.451840777516365\n",
      "Average loss at step  16000 :  4.470081893801689\n",
      "Average loss at step  18000 :  4.493690568208694\n",
      "Average loss at step  20000 :  4.44246581697464\n",
      "Nearest to 看: 蚁, 贝, 脍, 麓, 尖, 镕, 睇, 巾,\n",
      "Nearest to 东: 氛, 凉, 西, 高, 婷, 敕, 姿, 沔,\n",
      "Nearest to 得: 才, 筱, 涅, 约, 冽, 谪, 劝, 倩,\n",
      "Nearest to 三: 遂, 拳, 》, 收, 榴, 史, 迅, 卮,\n",
      "Nearest to 江: 闰, 槽, 给, 竭, 娴, 挂,  , 假,\n",
      "Nearest to 醉: 嘶, 阿, 攸, 趁, 捧, 丛, 蜗, 尽,\n",
      "Nearest to 来: 去, 布, 乞, 拘, 五,  , 偿, 庖,\n",
      "Nearest to 前: 岷, 魄, 这, 篪, 璈, 懒,  , 嬴,\n",
      "Nearest to 红: 沃, 禽, 野, 肉, 蔻, 菊, 屐, 岧,\n",
      "Nearest to 楼: 剔, 迓, 屐, 咫, 贤, 鸬, 沸, 轲,\n",
      "Nearest to UNK: 样, 稍, 标, 幸, 嵩, 互, 槔, 护,\n",
      "Nearest to 多: 命, 乐, 醇, 捎, 赐, 裴, 篝, 疑,\n",
      "Nearest to 愁: 廖, 郎, 也, 骝, 攒, 苦, 漙, 耶,\n",
      "Nearest to 梅: 桥, 吃, 压, 酽, 壑, 遣, 刊, 病,\n",
      "Nearest to 中: 徐, 阜, 俜, 可, 散, 振, 里, 溢,\n",
      "Nearest to 行: 值, 卜, 蓼, 泯, 牡, 较, 镗, 截,\n",
      "Average loss at step  22000 :  4.391634933710098\n",
      "Average loss at step  24000 :  4.346841453075409\n",
      "Average loss at step  26000 :  4.3569250279665\n",
      "Average loss at step  28000 :  4.409277633070945\n",
      "Average loss at step  30000 :  4.323275731086731\n",
      "Nearest to 看: 脍, 蚁, 贝, 见, 镕, 麓, 尖, 阿,\n",
      "Nearest to 东: 西, 氛, 凉, 高, 婷, 敕, 姿, 北,\n",
      "Nearest to 得: 涅, 冽, 筱, 约, 谪, 劝, 才, 个,\n",
      "Nearest to 三: 遂, 迅, 虾, 榴, 史, 》, 卮, 拳,\n",
      "Nearest to 江: 槽, 竭, 闰, 娴, 刁, 给, 挂, 冥,\n",
      "Nearest to 醉: 嘶, 攸, 趁, 阿, 捧, 丛, 尽, 蜗,\n",
      "Nearest to 来: 去, 布, 拘, 偿, 夏, 乞, 五, 宣,\n",
      "Nearest to 前: 岷, 魄, 篪, 这, 璈, 懒, 嬴,  ,\n",
      "Nearest to 红: 沃, 禽, 肉, 花, , 扪, 蔻, 岧,\n",
      "Nearest to 楼: 迓, 栏, 剔, 屐, 咫, 壁, 沸, 轲,\n",
      "Nearest to UNK: 样, 标, 嵩, 稍, 互, 幸, 槔, 固,\n",
      "Nearest to 多: 捎, 命, 醇, 篝, 乐, 土, 眠, 赐,\n",
      "Nearest to 愁: 郎, 廖, 苦, 恨, 也, 离, 漙, 骝,\n",
      "Nearest to 梅: 刊, 蜕, 桥, 吃, 压, 税, 峦, 观,\n",
      "Nearest to 中: 里, 徐, 阜, 振, 俜, 散,  , 偿,\n",
      "Nearest to 行: 值, 泯, 卜, 蓼, 截, 牡, 懊, 佳,\n",
      "Average loss at step  32000 :  4.167434324622154\n",
      "Average loss at step  34000 :  4.202821540951729\n",
      "Average loss at step  36000 :  4.228670848250389\n",
      "Average loss at step  38000 :  4.193094939351082\n",
      "Average loss at step  40000 :  4.186201926290989\n",
      "Nearest to 看: 蚁, 见, 贝, 脍, 问, 移, 至, 设,\n",
      "Nearest to 东: 西, 凉, 氛, 高, 北, 江, 敕, 婷,\n",
      "Nearest to 得: 个, 涅, 冽, 筱, 劝, 谪, 鞚, 札,\n",
      "Nearest to 三: 遂, 九, 史, 迅, 虾, 榴, 二, 卮,\n",
      "Nearest to 江: 槽, 刁, 闰, 娴, 竭, 波, 鸠, 西,\n",
      "Nearest to 醉: 嘶, 趁, 攸, 阿, 捧, 丛, 尽, 屯,\n",
      "Nearest to 来: 去, 布, 拘, 乞, 今, 醒, 怕, 庖,\n",
      "Nearest to 前: 岷, 魄, 篪, 这, 懒, 璈, 来, 嬴,\n",
      "Nearest to 红: 沃, 花, 禽, 岧, 蔻, 扪, 菊, 肉,\n",
      "Nearest to 楼: 栏, 迓, 壁, 剔, 忱, 屐, 轲, 咫,\n",
      "Nearest to UNK: 样, 标, 嵩, 幸, 稍, 旎, 槔, 护,\n",
      "Nearest to 多: 捎, 命, 醇, 乐, 篝, 甚, 土, 勃,\n",
      "Nearest to 愁: 恨, 苦, 也, 离, 郎, 廖, 耶, 毗,\n",
      "Nearest to 梅: 税, 刊, 蜕, 峦, 吃, 压, 桥, 菊,\n",
      "Nearest to 中: 里, 阜, 振, 偿, 徐, 朗, 俜, 散,\n",
      "Nearest to 行: 值, 泯, 截, 佳, 卜, 懊, 过, 蓼,\n",
      "Average loss at step  42000 :  4.212769783020019\n",
      "Average loss at step  44000 :  4.202251561880112\n",
      "Average loss at step  46000 :  4.239499970078469\n",
      "Average loss at step  48000 :  4.283322526216507\n",
      "Average loss at step  50000 :  4.259681803584098\n",
      "Nearest to 看: 问, 移, 见, 脍, 蚁, 贝, 听, 麓,\n",
      "Nearest to 东: 西, 北, 氛, 凉, 江, 旸, 敕, 婷,\n",
      "Nearest to 得: 个, 冽, 取, 筱, 涅, 札, 谪, 鞚,\n",
      "Nearest to 三: 九, 遂, 二, 虾, 迅, 蜚, 榴, 四,\n",
      "Nearest to 江: 槽, 闰, 刁, 竭, 波, 川, 娴, 谨,\n",
      "Nearest to 醉: 嘶, 趁, 丛, 攸, 晃, 阿, 屯, 捧,\n",
      "Nearest to 来: 去, 布, 圆, 怕, 拘, 戒, 乘, 赌,\n",
      "Nearest to 前: 岷, 篪, 魄, 这, 懒, 璈, 来, 唳,\n",
      "Nearest to 红: 沃, 花, 扪, 禽, 岧, 菊, 蔻, 春,\n",
      "Nearest to 楼: 栏, 迓, 壁, 忱, 剔, 鸬, 轲, 屐,\n",
      "Nearest to UNK: 样, 标, 嵩, 稍, 幸, 旎, 固, 槔,\n",
      "Nearest to 多: 捎, 命, 醇, 篝, 浓, 牵, 勃, 赐,\n",
      "Nearest to 愁: 恨, 苦, 离, 毗, 耶, 也, 蝴, 廖,\n",
      "Nearest to 梅: 税, 刊, 吃, 桥, 竹, 沃, 菊, 观,\n",
      "Nearest to 中: 里, 徐, 偿, 阜, 振, 峤, 朗, 俜,\n",
      "Nearest to 行: 值, 泯, 懊, 过, 卜, 截, 佳, 蓄,\n",
      "Average loss at step  52000 :  4.2426416022777556\n",
      "Average loss at step  54000 :  4.194051274895668\n",
      "Average loss at step  56000 :  4.232780438184738\n",
      "Average loss at step  58000 :  4.25166309773922\n",
      "Average loss at step  60000 :  4.178339652657509\n",
      "Nearest to 看: 见, 问, 听, 移, 脍, 蚁, 明, 贝,\n",
      "Nearest to 东: 西, 北, 氛, 凉, 江, 敕, 旸, 沔,\n",
      "Nearest to 得: 取, 个, 冽, 涅, 札, 筱, 谪, 时,\n",
      "Nearest to 三: 二, 九, 十, 四, 虾, 迅, 遂, 一,\n",
      "Nearest to 江: 槽, 刁, 竭, 闰, 湖, 娴, 川, 波,\n",
      "Nearest to 醉: 嘶, 攸, 趁, 晃, 丛, 捧, 昊, 阿,\n",
      "Nearest to 来: 去, 布, 今, 怕, 圆, 前, 乘, 戒,\n",
      "Nearest to 前: 岷, 篪, 魄, 这, 懒, 来, 共, 唳,\n",
      "Nearest to 红: 沃, 花, 扪, 蔻, 炫, 岧, 春, 庞,\n",
      "Nearest to 楼: 栏, 壁, 迓, 城, 剔, 忱, 林, 轲,\n",
      "Nearest to UNK: 样, 标, 嵩, 稍, 旎, 戟, 固, 槔,\n",
      "Nearest to 多: 命, 捎, 浓, 牵, 勃, 甚, 醇, 漫,\n",
      "Nearest to 愁: 恨, 离, 苦, 耶, 郎, 蝴, 情, 秋,\n",
      "Nearest to 梅: 菊, 税, 刊, 桃, 吃, 桥, 沃, 蜕,\n",
      "Nearest to 中: 里, 偿, 徐, 振, 峤, 阜, 朗, 俜,\n",
      "Nearest to 行: 值, 泯, 过, 懊, 截, 佳, 蓄, 瀼,\n",
      "Average loss at step  62000 :  4.099354841470719\n",
      "Average loss at step  64000 :  4.116207797884941\n",
      "Average loss at step  66000 :  4.131029004573822\n",
      "Average loss at step  68000 :  4.111197411298752\n",
      "Average loss at step  70000 :  4.106447925359011\n",
      "Nearest to 看: 问, 听, 见, 移, 明, 把, 脍, 收,\n",
      "Nearest to 东: 西, 北, 凉, 氛, 江, 南, 旸, 敕,\n",
      "Nearest to 得: 取, 个, 冽, 札, 筱, 涅, 误, 联,\n",
      "Nearest to 三: 九, 二, 十, 四, 虾, 遂, 蜚, 迅,\n",
      "Nearest to 江: 水, 刁, 槽, 波, 娴, 淮, 闰, 竭,\n",
      "Nearest to 醉: 嘶, 趁, 晃, 攸, 捧, 瓣, 屯, 阿,\n",
      "Nearest to 来: 去, 布, 乘, 今, 怕, 戒, 懒, 鉏,\n",
      "Nearest to 前: 篪, 岷, 魄, 懒, 这, 来, 共, 唳,\n",
      "Nearest to 红: 沃, 花, 炫, 岧, 蔻, 扪, 菊, 庞,\n",
      "Nearest to 楼: 栏, 壁, 忱, 迓, 城, 剔, 林, 轲,\n",
      "Nearest to UNK: 样, 旎, 嵩, 标, 稍, 固, 幸, 戟,\n",
      "Nearest to 多: 浓, 命, 捎, 勃, 甚, 牵, 眷, 恼,\n",
      "Nearest to 愁: 恨, 离, 苦, 蝴, 伤, 耶, 睡, 毗,\n",
      "Nearest to 梅: 菊, 税, 桃, 刊, 毋, 春, 吃, 奁,\n",
      "Nearest to 中: 里, 偿, 徐, 峤, 振, 阜, 朗, 镞,\n",
      "Nearest to 行: 值, 泯, 过, 懊, 截, 蓄, 佳, 瀼,\n",
      "Average loss at step  72000 :  4.126921815752983\n",
      "Average loss at step  74000 :  4.127152610659599\n",
      "Average loss at step  76000 :  4.193756926894188\n",
      "Average loss at step  78000 :  4.197482008218765\n",
      "Average loss at step  80000 :  4.188351399183273\n",
      "Nearest to 看: 听, 问, 见, 移, 把, 明, 趁, 挂,\n",
      "Nearest to 东: 西, 北, 氛, 南, 旸, 敕, 沔, 昭,\n",
      "Nearest to 得: 取, 个, 冽, 札, 筱, 联, 涅, 谪,\n",
      "Nearest to 三: 二, 九, 十, 四, 蜚, 遂, 虾, 迅,\n",
      "Nearest to 江: 水, 刁, 槽, 淮, 闰, 波, 西, 湖,\n",
      "Nearest to 醉: 嘶, 趁, 晃, 丛, 瓣, 昊, 笑, 屯,\n",
      "Nearest to 来: 去, 乘, 戒, 今, 怕, 圆, 布, 巢,\n",
      "Nearest to 前: 篪, 岷, 魄, 懒, 这, 共, 来, 唳,\n",
      "Nearest to 红: 沃, 炫, 扪, 春, 花, 庞, 旖, 岧,\n",
      "Nearest to 楼: 栏, 忱, 壁, 剔, 城, 山, 迓, 憧,\n",
      "Nearest to UNK: 稍, 样, 旎, 标, 嵩, 戟, 固, 仰,\n",
      "Nearest to 多: 浓, 命, 勃, 捎, 恼, 尹, 牵, 眷,\n",
      "Nearest to 愁: 恨, 离, 苦, 秋, 蝴, 睡, 耶, 毗,\n",
      "Nearest to 梅: 税, 菊, 桃, 辕, 刊, 竹, 花, 毋,\n",
      "Nearest to 中: 里, 偿, 徐, 峤, 振, 阜, 朗, 俜,\n",
      "Nearest to 行: 值, 过, 懊, 泯, 蓄, 截, 佳, 瀼,\n",
      "Average loss at step  82000 :  4.169839654207229\n",
      "Average loss at step  84000 :  4.135819774627685\n",
      "Average loss at step  86000 :  4.186406720876693\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Average loss at step  88000 :  4.176332248330116\n",
      "Average loss at step  90000 :  4.099524564385414\n",
      "Nearest to 看: 听, 见, 把, 问, 明, 移, 赐, 向,\n",
      "Nearest to 东: 西, 北, 氛, 昭, 南, 敕, 凉, 腔,\n",
      "Nearest to 得: 取, 个, 札, 冽, 联, 筱, 渠, 不,\n",
      "Nearest to 三: 二, 十, 四, 九, 五, 八, 一, 载,\n",
      "Nearest to 江: 水, 刁, 槽, 湖, 淮, 波, 娴, 竭,\n",
      "Nearest to 醉: 趁, 嘶, 晃, 瓣, 笑, 攸, 昊, 捧,\n",
      "Nearest to 来: 去, 今, 怕, 戒, 乘, 布, 前, 懒,\n",
      "Nearest to 前: 篪, 岷, 来, 共, 懒, 魄, 常, 这,\n",
      "Nearest to 红: 花, 沃, 炫, 扪, 庞, 蔻, 腮, 春,\n",
      "Nearest to 楼: 栏, 城, 壁, 忱, 山, 林, 剔, 憧,\n",
      "Nearest to UNK: 旎, 样, 稍, 嵩, 标, 戟, 固, 仰,\n",
      "Nearest to 多: 浓, 牵, 勃, 命, 恼, 甚, 眷, 尹,\n",
      "Nearest to 愁: 恨, 离, 情, 秋, 伤, 苦, 蝴, 耶,\n",
      "Nearest to 梅: 菊, 税, 桃, 辕, 花, 刊, 春, 毋,\n",
      "Nearest to 中: 里, 偿, 峤, 徐, 振, 棘, 掷, 后,\n",
      "Nearest to 行: 值, 过, 泯, 懊, 截, 蓄, 佳, 瀼,\n",
      "Average loss at step  92000 :  4.046455408215523\n",
      "Average loss at step  94000 :  4.085117758512497\n",
      "Average loss at step  96000 :  4.050264035105705\n",
      "Average loss at step  98000 :  4.077431162953377\n",
      "Average loss at step  100000 :  4.066364117920399\n",
      "Nearest to 看: 听, 问, 把, 见, 明, 趁, 挂, 赐,\n",
      "Nearest to 东: 西, 北, 南, 昭, 敕, 旸, 凉, 沔,\n",
      "Nearest to 得: 取, 个, 札, 与, 冽, 筱, 联, 误,\n",
      "Nearest to 三: 二, 九, 十, 四, 五, 载, 八, 蜚,\n",
      "Nearest to 江: 水, 淮, 刁, 槽, 波, 湖, 醡, 娴,\n",
      "Nearest to 醉: 笑, 趁, 嘶, 瓣, 晃, 攸, 捧, 屯,\n",
      "Nearest to 来: 去, 今, 乘, 戒, 怕, 懒, 布, 鉏,\n",
      "Nearest to 前: 篪, 岷, 懒, 魄, 来, 这, 轮, 共,\n",
      "Nearest to 红: 花, 沃, 炫, 腮, 庞, 蔻, 蒲, 蛮,\n",
      "Nearest to 楼: 栏, 忱, 城, 壁, 林, 憧, 山, 蹬,\n",
      "Nearest to UNK: 旎, 样, 稍, 嵩, 固, 粒, 戟, 仰,\n",
      "Nearest to 多: 浓, 牵, 甚, 恼, 尹, 命, 眷, 勃,\n",
      "Nearest to 愁: 恨, 离, 伤, 苦, 情, 耶, 蝴, 秋,\n",
      "Nearest to 梅: 菊, 桃, 税, 辕, 毋, 挼, 花, 榴,\n",
      "Nearest to 中: 里, 偿, 峤, 徐, 振, 镞, 缑, 后,\n",
      "Nearest to 行: 值, 泯, 过, 蓄, 懊, 截, 瀼, 舆,\n",
      "Average loss at step  102000 :  4.079303340673446\n",
      "Average loss at step  104000 :  4.0942127546072005\n",
      "Average loss at step  106000 :  4.142275172710419\n",
      "Average loss at step  108000 :  4.148618368983269\n",
      "Average loss at step  110000 :  4.167998445391655\n",
      "Nearest to 看: 听, 把, 见, 问, 趁, 明, 向, 移,\n",
      "Nearest to 东: 西, 北, 南, 昭, 敕, 氛, 腔, 旸,\n",
      "Nearest to 得: 取, 个, 与, 札, 冽, 联, 筱, 咄,\n",
      "Nearest to 三: 二, 十, 九, 四, 五, 八, 载, 摭,\n",
      "Nearest to 江: 水, 淮, 湖, 槽, 刁, 波, 闰, 醡,\n",
      "Nearest to 醉: 笑, 瓣, 趁, 嘶, 晃, 酣, 艳, 昊,\n",
      "Nearest to 来: 去, 戒, 今, 怕, 乘, 懒, 巢, 圆,\n",
      "Nearest to 前: 篪, 岷, 来, 懒, 魄, 这, 常, 唳,\n",
      "Nearest to 红: 炫, 沃, 腮, 蒲, 扪, 蔻, 庞, 蛮,\n",
      "Nearest to 楼: 栏, 山, 憧, 忱, 城, 林, 珞, 壁,\n",
      "Nearest to UNK: 稍, 旎, 戟, 仰, 嵩, 固, 样, 悬,\n",
      "Nearest to 多: 浓, 牵, 尹, 恼, 命, 勃, 眷, 么,\n",
      "Nearest to 愁: 恨, 离, 情, 秋, 蝴, 伤, 耶, 苦,\n",
      "Nearest to 梅: 税, 菊, 辕, 桃, 花, 桂, 竹, 灯,\n",
      "Nearest to 中: 里, 偿, 峤, 徐, 沅, 掷, 炽, 缑,\n",
      "Nearest to 行: 值, 过, 懊, 泯, 蓄, 截, 瀼, 佳,\n",
      "Average loss at step  112000 :  4.114244025826454\n",
      "Average loss at step  114000 :  4.104482561111451\n",
      "Average loss at step  116000 :  4.149095081090927\n",
      "Average loss at step  118000 :  4.136675246238709\n",
      "Average loss at step  120000 :  4.031865883469582\n",
      "Nearest to 看: 听, 把, 见, 问, 向, 趁, 过, 明,\n",
      "Nearest to 东: 西, 北, 昭, 南, 敕, 腔, 氛, 沔,\n",
      "Nearest to 得: 取, 个, 与, 札, 冽, 了, 渠, 筱,\n",
      "Nearest to 三: 二, 十, 四, 五, 九, 载, 八, 一,\n",
      "Nearest to 江: 水, 淮, 湖, 槽, 刁, 醡, 溪, 波,\n",
      "Nearest to 醉: 笑, 瓣, 趁, 晃, 酣, 嘶, 艳, 攸,\n",
      "Nearest to 来: 去, 戒, 今, 懒, 怕, 乘, 前, 巢,\n",
      "Nearest to 前: 篪, 来, 岷, 常, 共, 下, 轮, 魄,\n",
      "Nearest to 红: 花, 腮, 炫, 沃, 蒲, 晕, 蛮, 蔻,\n",
      "Nearest to 楼: 栏, 城, 山, 忱, 林, 亭, 憧, 树,\n",
      "Nearest to UNK: 玕, 稍, 戟, 旎, 仰, 嵩, 固, 粒,\n",
      "Nearest to 多: 浓, 牵, 甚, 恼, 眷, 勃, 年, 么,\n",
      "Nearest to 愁: 恨, 情, 离, 秋, 伤, 蝴, 睡, 病,\n",
      "Nearest to 梅: 菊, 税, 花, 桃, 辕, 灯, 桂, 榴,\n",
      "Nearest to 中: 里, 偿, 峤, 同, 徐, 掷, 棘, 缑,\n",
      "Nearest to 行: 过, 泯, 值, 截, 蓄, 懊, 瀼, 佳,\n",
      "Average loss at step  122000 :  4.03618236720562\n",
      "Average loss at step  124000 :  4.060790977239609\n",
      "Average loss at step  126000 :  4.003850387454033\n",
      "Average loss at step  128000 :  4.038710416316986\n",
      "Average loss at step  130000 :  4.042343955338001\n",
      "Nearest to 看: 听, 把, 见, 问, 趁, 明, 过, 到,\n",
      "Nearest to 东: 西, 北, 南, 昭, 敕, 旸, 腔, 沔,\n",
      "Nearest to 得: 取, 个, 与, 札, 筱, 了, 冽, 误,\n",
      "Nearest to 三: 二, 五, 九, 十, 四, 载, 八, 蜚,\n",
      "Nearest to 江: 水, 淮, 湖, 醡, 槽, 波, 刁, 闰,\n",
      "Nearest to 醉: 笑, 瓣, 趁, 晃, 酣, 嘶, 攸, 艳,\n",
      "Nearest to 来: 去, 今, 戒, 乘, 懒, 怕, 鉏, 巢,\n",
      "Nearest to 前: 篪, 岷, 轮, 下, 来, 魄, 崔, 佣,\n",
      "Nearest to 红: 花, 炫, 腮, 沃, 蒲, 蛮, 蔻, 晕,\n",
      "Nearest to 楼: 栏, 城, 忱, 林, 憧, 亭, 阁, 厢,\n",
      "Nearest to UNK: 旎, 稍, 玕, 戟, 粒, 固, 仰, 嵩,\n",
      "Nearest to 多: 浓, 牵, 甚, 恼, 眷, 勃, 薄, 尹,\n",
      "Nearest to 愁: 恨, 离, 伤, 情, 病, 耶, 秋, 蝴,\n",
      "Nearest to 梅: 桃, 税, 菊, 灯, 辕, 雪, 桂, 阀,\n",
      "Nearest to 中: 里, 偿, 峤, 掷, 稿, 缑, 同, 镞,\n",
      "Nearest to 行: 泯, 值, 过, 蓄, 截, 懊, 瀼, 舆,\n",
      "Average loss at step  132000 :  4.039555303573608\n",
      "Average loss at step  134000 :  4.064768250584603\n",
      "Average loss at step  136000 :  4.116408893823624\n",
      "Average loss at step  138000 :  4.1092721354961395\n",
      "Average loss at step  140000 :  4.136672953248024\n",
      "Nearest to 看: 听, 把, 趁, 见, 向, 问, 过, 对,\n",
      "Nearest to 东: 西, 北, 南, 昭, 沔, 敕, 腔, 氛,\n",
      "Nearest to 得: 取, 个, 与, 札, 冽, 免, 联, 筱,\n",
      "Nearest to 三: 二, 五, 十, 四, 九, 载, 八, 摭,\n",
      "Nearest to 江: 水, 淮, 湖, 醡, 刁, 槽, 闰, 波,\n",
      "Nearest to 醉: 笑, 瓣, 酣, 晃, 艳, 趁, 嘶, 吻,\n",
      "Nearest to 来: 去, 戒, 今, 乘, 怕, 懒, 、, 巢,\n",
      "Nearest to 前: 篪, 岷, 岐, 来, 孀, 崔, 涸, 眊,\n",
      "Nearest to 红: 炫, 腮, 蒲, 蔻, 沃, 粉, 春, 庞,\n",
      "Nearest to 楼: 栏, 城, 山, 憧, 想, 忱, 亭, 阁,\n",
      "Nearest to UNK: 稍, 戟, 玕, 仰, 旎, 固, 粒, 丧,\n",
      "Nearest to 多: 浓, 牵, 恼, 尹, 么, 勃, 功, 眷,\n",
      "Nearest to 愁: 恨, 情, 离, 秋, 伤, 蝴, 桃, 病,\n",
      "Nearest to 梅: 菊, 税, 桃, 辕, 桂, 灯, 花, 梨,\n",
      "Nearest to 中: 里, 偿, 峤, 徐, 掷, 沅, 同, 缑,\n",
      "Nearest to 行: 懊, 泯, 过, 蓄, 值, 截, 瀼, 载,\n",
      "Average loss at step  142000 :  4.092241077184677\n",
      "Average loss at step  144000 :  4.072706263065339\n",
      "Average loss at step  146000 :  4.124696726799011\n",
      "Average loss at step  148000 :  4.103832489609719\n",
      "Average loss at step  150000 :  3.990285746574402\n",
      "Nearest to 看: 听, 把, 见, 向, 趁, 问, 过, 对,\n",
      "Nearest to 东: 西, 北, 昭, 南, 腔, 沔, 敕, 旸,\n",
      "Nearest to 得: 取, 个, 与, 札, 了, 渠, 免, 冽,\n",
      "Nearest to 三: 二, 五, 四, 十, 九, 载, 八, 一,\n",
      "Nearest to 江: 水, 淮, 湖, 醡, 溪, 刁, 槽, 湘,\n",
      "Nearest to 醉: 笑, 瓣, 酣, 晃, 艳, 趁, 吻, 病,\n",
      "Nearest to 来: 去, 戒, 今, 乘, 懒, 怕, 前, ，,\n",
      "Nearest to 前: 篪, 来, 岷, 轮, 眊, 下, 常, 岐,\n",
      "Nearest to 红: 花, 腮, 炫, 晕, 蛮, 蔻, 粉, 讷,\n",
      "Nearest to 楼: 栏, 城, 山, 亭, 忱, 憧, 珞, 树,\n",
      "Nearest to UNK: 玕, 戟, 稍, 旎, 仰, 固, 吻, 粒,\n",
      "Nearest to 多: 浓, 牵, 恼, 眷, 么, 勃, 甚, 年,\n",
      "Nearest to 愁: 恨, 情, 离, 伤, 秋, 蝴, 娇, 病,\n",
      "Nearest to 梅: 菊, 花, 桃, 税, 灯, 桂, 辕, 杏,\n",
      "Nearest to 中: 里, 偿, 同, 峤, 掷, 缑, 沅, 后,\n",
      "Nearest to 行: 泯, 过, 蓄, 截, 值, 懊, 载, 之,\n",
      "Average loss at step  152000 :  4.009265636444092\n",
      "Average loss at step  154000 :  4.041483081936836\n",
      "Average loss at step  156000 :  3.987342028141022\n",
      "Average loss at step  158000 :  4.02539444065094\n",
      "Average loss at step  160000 :  4.0289627897143365\n",
      "Nearest to 看: 听, 把, 趁, 见, 过, 问, 向, 到,\n",
      "Nearest to 东: 西, 北, 南, 昭, 侧, 旸, 沔, 腔,\n",
      "Nearest to 得: 取, 个, 与, 著, 札, 了, 渠, 饷,\n",
      "Nearest to 三: 五, 二, 四, 十, 九, 载, 八, 蜚,\n",
      "Nearest to 江: 水, 淮, 湖, 醡, 槽, 湘, 溪, 刁,\n",
      "Nearest to 醉: 笑, 瓣, 酣, 趁, 晃, 艳, 病, 攸,\n",
      "Nearest to 来: 去, 戒, 今, 乘, 懒, 搅, 怕, 鉏,\n",
      "Nearest to 前: 篪, 轮, 岷, 眊, 谑, 涸, 佣, 下,\n",
      "Nearest to 红: 花, 腮, 炫, 蛮, 蔻, 晕, 沃, 庞,\n",
      "Nearest to 楼: 栏, 城, 亭, 忱, 山, 厢, 憧, 蹬,\n",
      "Nearest to UNK: 玕, 旎, 稍, 仰, 戟, 粒, 固, 吻,\n",
      "Nearest to 多: 浓, 恼, 牵, 甚, 薄, 眷, 勃, 么,\n",
      "Nearest to 愁: 恨, 情, 离, 伤, 蝴, 病, 耶, 娇,\n",
      "Nearest to 梅: 桃, 税, 灯, 菊, 桂, 花, 雪, 棋,\n",
      "Nearest to 中: 里, 偿, 峤, 掷, 同, 缑, 稿, 闷,\n",
      "Nearest to 行: 泯, 蓄, 懊, 载, 过, 值, 截, 羁,\n",
      "Average loss at step  162000 :  4.009872236132622\n",
      "Average loss at step  164000 :  4.052300600290298\n",
      "Average loss at step  166000 :  4.079672991871834\n",
      "Average loss at step  168000 :  4.084507608771324\n",
      "Average loss at step  170000 :  4.103960554003716\n",
      "Nearest to 看: 听, 把, 趁, 向, 见, 过, 对, 问,\n",
      "Nearest to 东: 西, 北, 南, 昭, 沔, 腔, 敕, 穆,\n",
      "Nearest to 得: 取, 个, 与, 札, 免, 著, 咄, 筱,\n",
      "Nearest to 三: 五, 二, 四, 十, 九, 八, 载, 摭,\n",
      "Nearest to 江: 淮, 水, 湖, 醡, 溪, 波, 槽, 闰,\n",
      "Nearest to 醉: 笑, 瓣, 酣, 艳, 吻, 晃, 趁, 病,\n",
      "Nearest to 来: 去, 戒, 乘, 今, 怕, 搅, 巢, 到,\n",
      "Nearest to 前: 篪, 岷, 涸, 岐, 谑, 来, 孀, 外,\n",
      "Nearest to 红: 炫, 腮, 粉, 春, 蔻, 蛮, 花, 蒲,\n",
      "Nearest to 楼: 栏, 城, 山, 蹬, 珞, 阁, 亭, 厢,\n",
      "Nearest to UNK: 玕, 稍, 戟, 旎, 仰, 丧, 角, 固,\n",
      "Nearest to 多: 浓, 恼, 牵, 么, 尹, 勃, 偏, 苦,\n",
      "Nearest to 愁: 恨, 情, 离, 秋, 桃, 伤, 蝴, 孤,\n",
      "Nearest to 梅: 桂, 桃, 税, 灯, 菊, 辕, 花, 杏,\n",
      "Nearest to 中: 里, 峤, 偿, 掷, 同, 沅, 闷, 缑,\n",
      "Nearest to 行: 懊, 蓄, 泯, 载, 过, 值, 羁, 截,\n",
      "Average loss at step  172000 :  4.084162325263024\n",
      "Average loss at step  174000 :  4.050816127300262\n",
      "Average loss at step  176000 :  4.106623265504837\n",
      "Average loss at step  178000 :  4.084006104826927\n",
      "Average loss at step  180000 :  3.951179221868515\n",
      "Nearest to 看: 听, 把, 向, 趁, 见, 过, 问, 对,\n",
      "Nearest to 东: 西, 北, 昭, 南, 沔, 穆, 敕, 侧,\n",
      "Nearest to 得: 取, 个, 与, 札, 了, 饷, 能, 著,\n",
      "Nearest to 三: 二, 五, 十, 四, 九, 载, 八, 六,\n",
      "Nearest to 江: 水, 淮, 湖, 溪, 醡, 湘, 槽, 岭,\n",
      "Nearest to 醉: 笑, 瓣, 酣, 艳, 去, 病, 晃, 趁,\n",
      "Nearest to 来: 去, 戒, 今, 乘, 怕, 鉏, 懒, 巢,\n",
      "Nearest to 前: 篪, 来, 下, 眊, 轮, 畔, 常, 岷,\n",
      "Nearest to 红: 花, 腮, 炫, 粉, 蛮, 蔻, 烘, 晕,\n",
      "Nearest to 楼: 栏, 城, 山, 亭, 珞, 蹬, 树, 阁,\n",
      "Nearest to UNK: 玕, 戟, 旎, 仰, 稍, 断, 吻, 粒,\n",
      "Nearest to 多: 浓, 牵, 恼, 么, 人, 勃, 眷, 甚,\n",
      "Nearest to 愁: 恨, 情, 离, 秋, 伤, 娇, 蝴, 桃,\n",
      "Nearest to 梅: 花, 灯, 桃, 菊, 税, 桂, 杏, 棋,\n",
      "Nearest to 中: 里, 同, 偿, 掷, 峤, 沅, 缑, 阓,\n",
      "Nearest to 行: 泯, 蓄, 载, 懊, 截, 之, 过, 羁,\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Average loss at step  182000 :  4.005715567827225\n",
      "Average loss at step  184000 :  4.022155887722969\n",
      "Average loss at step  186000 :  3.960005938053131\n",
      "Average loss at step  188000 :  4.00469952249527\n",
      "Average loss at step  190000 :  4.005806964933872\n",
      "Nearest to 看: 听, 把, 趁, 见, 过, 向, 问, 倩,\n",
      "Nearest to 东: 西, 北, 南, 昭, 旸, 侧, 沔, 泠,\n",
      "Nearest to 得: 取, 个, 与, 著, 饷, 札, 了, 能,\n",
      "Nearest to 三: 五, 二, 四, 十, 九, 载, 八, 六,\n",
      "Nearest to 江: 淮, 水, 湖, 醡, 湘, 溪, 陇, 槽,\n",
      "Nearest to 醉: 笑, 瓣, 酣, 艳, 趁, 病, 笥, 粒,\n",
      "Nearest to 来: 去, 戒, 乘, 今, 搅, 懒, 怕, 鉏,\n",
      "Nearest to 前: 篪, 轮, 谑, 眊, 来, 下, 佣, 今,\n",
      "Nearest to 红: 花, 腮, 炫, 蔻, 晕, 烘, 蛮, 哨,\n",
      "Nearest to 楼: 栏, 城, 亭, 山, 忱, 厢, 阁, 蹬,\n",
      "Nearest to UNK: 玕, 旎, 戟, 稍, 粒, 仰, 断, ＿,\n",
      "Nearest to 多: 浓, 牵, 恼, 甚, 薄, 勃, 么, 眷,\n",
      "Nearest to 愁: 恨, 情, 离, 伤, 闷, 桃, 耶, 却,\n",
      "Nearest to 梅: 桃, 桂, 灯, 税, 杏, 雪, 棋, 梨,\n",
      "Nearest to 中: 里, 偿, 掷, 峤, 缑, 同, 稿, 作,\n",
      "Nearest to 行: 泯, 蓄, 载, 懊, 羁, 齑, 淝, 归,\n",
      "Average loss at step  192000 :  4.002307478547096\n",
      "Average loss at step  194000 :  4.025788180351257\n",
      "Average loss at step  196000 :  4.069951552033424\n",
      "Average loss at step  198000 :  4.069839239954948\n",
      "Average loss at step  200000 :  4.085723672270775\n",
      "Nearest to 看: 听, 把, 趁, 向, 对, 见, 过, 问,\n",
      "Nearest to 东: 西, 北, 南, 昭, 沔, 穆, 斜, 侧,\n",
      "Nearest to 得: 取, 与, 个, 札, 著, 免, 饷, 却,\n",
      "Nearest to 三: 五, 二, 四, 十, 九, 载, 八, 六,\n",
      "Nearest to 江: 淮, 水, 湖, 醡, 溪, 陇, 湘, 槽,\n",
      "Nearest to 醉: 笑, 瓣, 酣, 艳, 吻, 笥, 嵬, 粒,\n",
      "Nearest to 来: 去, 戒, 今, 乘, 怕, 搅, 到, 巢,\n",
      "Nearest to 前: 篪, 涸, 来, 谑, 一, 岐, 眊, 今,\n",
      "Nearest to 红: 炫, 腮, 粉, 花, 蔻, 春, 农, 哨,\n",
      "Nearest to 楼: 栏, 城, 蹬, 阁, 山, 亭, 厢, 珞,\n",
      "Nearest to UNK: 玕, 戟, 稍, 旎, 仰, 角, 断, 烧,\n",
      "Nearest to 多: 浓, 牵, 么, 恼, 尹, 偏, 勃, 年,\n",
      "Nearest to 愁: 恨, 情, 离, 秋, 桃, 伤, 蝴, 怨,\n",
      "Nearest to 梅: 桃, 灯, 杏, 税, 桂, 菊, 花, 辕,\n",
      "Nearest to 中: 里, 峤, 沅, 同, 掷, 偿, 缑, 浔,\n",
      "Nearest to 行: 载, 懊, 泯, 蓄, 羁, 同, 齑, 归,\n",
      "Average loss at step  202000 :  4.06136287510395\n",
      "Average loss at step  204000 :  4.031394726037979\n",
      "Average loss at step  206000 :  4.09149507534504\n",
      "Average loss at step  208000 :  4.058391065001488\n",
      "Average loss at step  210000 :  3.9301349707841875\n",
      "Nearest to 看: 听, 把, 趁, 向, 见, 过, 问, 倩,\n",
      "Nearest to 东: 西, 北, 昭, 南, 穆, 沔, 旸, 紧,\n",
      "Nearest to 得: 取, 个, 与, 札, 饷, 了, 著, 免,\n",
      "Nearest to 三: 五, 二, 四, 十, 九, 载, 八, 六,\n",
      "Nearest to 江: 水, 淮, 湖, 醡, 溪, 湘, 陇, 岭,\n",
      "Nearest to 醉: 笑, 瓣, 酣, 艳, 吻, 去, 粒, 病,\n",
      "Nearest to 来: 去, 戒, 今, 乘, 搅, 前, 鉏, 又,\n",
      "Nearest to 前: 篪, 来, 轮, 眊, 谑, 佣, 先, 畔,\n",
      "Nearest to 红: 花, 腮, 烘, 炫, 晕, 蔻, 讷, 粉,\n",
      "Nearest to 楼: 栏, 城, 山, 亭, 蹬, 阁, 珞, 树,\n",
      "Nearest to UNK: 玕, 戟, 旎, 仰, 稍, 断, 毅, },\n",
      "Nearest to 多: 浓, 牵, 恼, 么, 偏, 薄, 勃, 嚬,\n",
      "Nearest to 愁: 恨, 情, 离, 伤, 秋, 闷, 娇, 蝴,\n",
      "Nearest to 梅: 杏, 花, 桃, 灯, 税, 桂, 菊, 梨,\n",
      "Nearest to 中: 里, 同, 掷, 偿, 峤, 缑, 沅, 阓,\n",
      "Nearest to 行: 载, 泯, 蓄, 懊, 截, 之, 归, 羁,\n",
      "Average loss at step  212000 :  3.9873641262054442\n",
      "Average loss at step  214000 :  3.996383245229721\n",
      "Average loss at step  216000 :  3.9561232494115828\n",
      "Average loss at step  218000 :  3.962299645066261\n",
      "Average loss at step  220000 :  4.009390445351601\n",
      "Nearest to 看: 听, 把, 见, 趁, 向, 过, 倩, 问,\n",
      "Nearest to 东: 西, 北, 南, 昭, 侧, 旸, 斜, 沔,\n",
      "Nearest to 得: 取, 个, 与, 著, 饷, 札, 了, 能,\n",
      "Nearest to 三: 五, 二, 四, 十, 九, 载, 八, 六,\n",
      "Nearest to 江: 淮, 水, 湖, 醡, 溪, 湘, 陇, 岭,\n",
      "Nearest to 醉: 笑, 瓣, 酣, 病, 艳, 卓, 趁, 粒,\n",
      "Nearest to 来: 去, 戒, 乘, 今, 搅, 巢, 鉏, 茹,\n",
      "Nearest to 前: 篪, 谑, 今, 轮, 眊, 佣, 来, 涸,\n",
      "Nearest to 红: 花, 炫, 腮, 蔻, 烘, 晕, 褪, 蛮,\n",
      "Nearest to 楼: 栏, 城, 亭, 山, 蹬, 台, 忱, 阁,\n",
      "Nearest to UNK: 玕, 旎, 戟, }, ＿, 仰, 断, 毅,\n",
      "Nearest to 多: 浓, 牵, 恼, 偏, 薄, 甚, 渚, 么,\n",
      "Nearest to 愁: 恨, 情, 伤, 闷, 离, 怨, 耶, 桃,\n",
      "Nearest to 梅: 杏, 桃, 桂, 灯, 税, 棋, 梨, 花,\n",
      "Nearest to 中: 里, 掷, 偿, 峤, 缑, 作, 沅, 同,\n",
      "Nearest to 行: 载, 泯, 懊, 蓄, 之, 羁, 齑, 淝,\n",
      "Average loss at step  222000 :  3.9882746942043306\n",
      "Average loss at step  224000 :  4.006042720317841\n",
      "Average loss at step  226000 :  4.0755538753271106\n",
      "Average loss at step  228000 :  4.048979329586029\n",
      "Average loss at step  230000 :  4.064739226818085\n",
      "Nearest to 看: 听, 把, 趁, 向, 对, 见, 过, 窥,\n",
      "Nearest to 东: 西, 北, 南, 昭, 沔, 侧, 岷, 穆,\n",
      "Nearest to 得: 取, 与, 个, 饷, 札, 著, 遣, 却,\n",
      "Nearest to 三: 五, 二, 四, 十, 六, 载, 九, 八,\n",
      "Nearest to 江: 淮, 水, 湖, 醡, 溪, 陇, 湘, 波,\n",
      "Nearest to 醉: 笑, 酣, 瓣, 艳, 吻, 醒, 病, 嵬,\n",
      "Nearest to 来: 去, 戒, 今, 乘, 搅, 怕, 巢, 到,\n",
      "Nearest to 前: 篪, 涸, 谑, 眊, 岐, 来, 一, 今,\n",
      "Nearest to 红: 炫, 腮, 粉, 蔻, 花, 农, 哨, 烘,\n",
      "Nearest to 楼: 栏, 城, 蹬, 台, 阁, 山, 厢, 珞,\n",
      "Nearest to UNK: 玕, 戟, 旎, 仰, 稍, 饵, 烧, 苒,\n",
      "Nearest to 多: 浓, 牵, 么, 偏, 尹, 恼, 渚, 患,\n",
      "Nearest to 愁: 恨, 情, 秋, 伤, 怨, 离, 闷, 桃,\n",
      "Nearest to 梅: 杏, 灯, 桂, 税, 桃, 醿, 花, 菊,\n",
      "Nearest to 中: 里, 同, 峤, 掷, 沅, 缑, 偿, 婺,\n",
      "Nearest to 行: 载, 懊, 泯, 蓄, 羁, 齑, 政, 同,\n",
      "Average loss at step  232000 :  4.036382537245751\n",
      "Average loss at step  234000 :  4.0175901407003405\n",
      "Average loss at step  236000 :  4.0655664103031155\n",
      "Average loss at step  238000 :  4.040208916306495\n",
      "Average loss at step  240000 :  3.9171356035470963\n",
      "Nearest to 看: 听, 把, 趁, 见, 向, 过, 对, 窥,\n",
      "Nearest to 东: 西, 北, 南, 昭, 春, 紧, 旸, 岷,\n",
      "Nearest to 得: 取, 与, 个, 饷, 札, 遣, 著, 了,\n",
      "Nearest to 三: 五, 二, 四, 十, 载, 九, 六, 八,\n",
      "Nearest to 江: 淮, 水, 湖, 醡, 溪, 湘, 陇, 岭,\n",
      "Nearest to 醉: 笑, 瓣, 酣, 艳, 病, 去, 吟, 吻,\n",
      "Nearest to 来: 去, 戒, 乘, 今, 搅, 。, ，, 鉏,\n",
      "Nearest to 前: 篪, 来, 轮, 眊, 佣, 谑, 务, 涸,\n",
      "Nearest to 红: 花, 烘, 腮, 褪, 炫, 粉, 晕, 蔻,\n",
      "Nearest to 楼: 城, 栏, 山, 亭, 蹬, 阁, 珞, 树,\n",
      "Nearest to UNK: 玕, 戟, 旎, 仰, }, 毅, 断, 饵,\n",
      "Nearest to 多: 浓, 牵, 恼, 偏, 人, 么, 苦, 甚,\n",
      "Nearest to 愁: 恨, 情, 闷, 离, 伤, 蝴, 娇, 怨,\n",
      "Nearest to 梅: 杏, 花, 灯, 桃, 税, 桂, 菊, 棋,\n",
      "Nearest to 中: 里, 同, 偿, 掷, 峤, 沅, 缑, 障,\n",
      "Nearest to 行: 载, 泯, 懊, 蓄, 齑, 羁, 灌, 归,\n",
      "Average loss at step  242000 :  3.966644060254097\n",
      "Average loss at step  244000 :  3.990564259290695\n",
      "Average loss at step  246000 :  3.94481812107563\n",
      "Average loss at step  248000 :  3.954252841889858\n",
      "Average loss at step  250000 :  3.9784516755342483\n",
      "Nearest to 看: 听, 把, 趁, 见, 向, 过, 倩, 问,\n",
      "Nearest to 东: 西, 北, 昭, 南, 侧, 旸, 扁, 沔,\n",
      "Nearest to 得: 取, 与, 个, 著, 饷, 能, 了, 札,\n",
      "Nearest to 三: 五, 二, 四, 十, 载, 九, 六, 八,\n",
      "Nearest to 江: 淮, 水, 湖, 醡, 溪, 湘, 陇, 岭,\n",
      "Nearest to 醉: 笑, 瓣, 酣, 病, 妨, 粒, 艳, 卓,\n",
      "Nearest to 来: 去, 戒, 乘, 搅, 今, 巢, 鉏, 茹,\n",
      "Nearest to 前: 篪, 今, 谑, 眊, 佣, 涸, 轮, 后,\n",
      "Nearest to 红: 花, 炫, 腮, 烘, 褪, 蔻, 晕, 哨,\n",
      "Nearest to 楼: 城, 栏, 山, 蹬, 阁, 台, 亭, 忱,\n",
      "Nearest to UNK: 玕, }, 旎, 戟, ＿, 断, 仰, 滕,\n",
      "Nearest to 多: 浓, 牵, 恼, 谋, 甚, 渚, 有, 偏,\n",
      "Nearest to 愁: 恨, 情, 闷, 伤, 离, 凄, 怨, 桃,\n",
      "Nearest to 梅: 杏, 桃, 桂, 税, 春, 灯, 花, 梨,\n",
      "Nearest to 中: 里, 偿, 缑, 掷, 峤, 作, 同, 熹,\n",
      "Nearest to 行: 载, 泯, 齑, 懊, 蓄, 羁, 归, 淝,\n",
      "Average loss at step  252000 :  3.9826246911287306\n",
      "Average loss at step  254000 :  4.02166248524189\n",
      "Average loss at step  256000 :  4.050017571091652\n",
      "Average loss at step  258000 :  4.036901460886002\n",
      "Average loss at step  260000 :  4.046709626555443\n",
      "Nearest to 看: 听, 趁, 把, 向, 对, 过, 见, 窥,\n",
      "Nearest to 东: 西, 南, 北, 昭, 沔, 紧, 岷, 穆,\n",
      "Nearest to 得: 取, 与, 个, 饷, 札, 著, 遣, 却,\n",
      "Nearest to 三: 五, 二, 十, 四, 六, 八, 九, 载,\n",
      "Nearest to 江: 淮, 水, 湖, 醡, 溪, 陇, 湘, 岭,\n",
      "Nearest to 醉: 笑, 酣, 瓣, 艳, 招, 醒, 粒, 病,\n",
      "Nearest to 来: 去, 戒, 乘, 今, 搅, 巢, 汰, 待,\n",
      "Nearest to 前: 篪, 涸, 谑, 眊, 因, 务, 努, 岐,\n",
      "Nearest to 红: 腮, 炫, 粉, 烘, 褪, 蔻, 农, 花,\n",
      "Nearest to 楼: 栏, 城, 山, 阁, 蹬, 台, 亭, 珞,\n",
      "Nearest to UNK: 玕, 饵, 戟, 仰, 烧, 断, 帽, 旎,\n",
      "Nearest to 多: 浓, 牵, 偏, 么, 恼, 谋, 尹, 渚,\n",
      "Nearest to 愁: 恨, 情, 闷, 怨, 秋, 伤, 桃, 蝴,\n",
      "Nearest to 梅: 杏, 灯, 桂, 税, 棋, 醿, 桃, 花,\n",
      "Nearest to 中: 里, 同, 沅, 峤, 缑, 掷, 偿, 浔,\n",
      "Nearest to 行: 载, 懊, 泯, 齑, 羁, 蓄, 政, 同,\n",
      "Average loss at step  262000 :  4.011397194743156\n",
      "Average loss at step  264000 :  4.014223749518394\n",
      "Average loss at step  266000 :  4.04617024564743\n",
      "Average loss at step  268000 :  3.9974957848787307\n",
      "Average loss at step  270000 :  3.936202155351639\n",
      "Nearest to 看: 听, 把, 向, 趁, 见, 过, 对, 窥,\n",
      "Nearest to 东: 西, 北, 昭, 南, 侧, 穆, 紧, 扁,\n",
      "Nearest to 得: 取, 与, 个, 著, 饷, 遣, 札, 了,\n",
      "Nearest to 三: 五, 二, 四, 十, 六, 九, 载, 八,\n",
      "Nearest to 江: 淮, 水, 湖, 溪, 醡, 陇, 湘, 岭,\n",
      "Nearest to 醉: 笑, 酣, 瓣, 艳, 病, 妨, 粒, 醒,\n",
      "Nearest to 来: 去, 戒, 乘, 今, ，, 待, 搅, 艇,\n",
      "Nearest to 前: 篪, 来, 眊, 谑, 先, 务, 轮, 因,\n",
      "Nearest to 红: 烘, 褪, 腮, 粉, 花, 蔻, 哨, 炫,\n",
      "Nearest to 楼: 城, 栏, 山, 亭, 阁, 蹬, 珞, 阑,\n",
      "Nearest to UNK: 玕, 戟, }, 旎, 苒, 锥, 断, 仰,\n",
      "Nearest to 多: 浓, 牵, 恼, 人, 偏, 么, 苦, 甚,\n",
      "Nearest to 愁: 恨, 情, 闷, 凄, 伤, 蝴, 离, 怨,\n",
      "Nearest to 梅: 杏, 灯, 桃, 桂, 税, 花, 菊, 戴,\n",
      "Nearest to 中: 里, 同, 偿, 掷, 缑, 峤, 沅, 浔,\n",
      "Nearest to 行: 载, 泯, 蓄, 懊, 归, 灌, 齑, 五,\n",
      "Average loss at step  272000 :  3.955816474914551\n",
      "Average loss at step  274000 :  3.9791180458068847\n",
      "Average loss at step  276000 :  3.9324397625923155\n",
      "Average loss at step  278000 :  3.9467683010697363\n",
      "Average loss at step  280000 :  3.9605307919979094\n",
      "Nearest to 看: 听, 把, 趁, 见, 向, 过, 呼, 倩,\n",
      "Nearest to 东: 西, 北, 昭, 南, 侧, 旸, 扁, 紧,\n",
      "Nearest to 得: 取, 与, 著, 个, 饷, 了, 能, 遣,\n",
      "Nearest to 三: 五, 二, 四, 十, 九, 六, 载, 八,\n",
      "Nearest to 江: 淮, 水, 湖, 溪, 醡, 陇, 湘, 岭,\n",
      "Nearest to 醉: 笑, 瓣, 酣, 妨, 病, 粒, 招, 艳,\n",
      "Nearest to 来: 去, 戒, 搅, 乘, 今, 巢, 鉏, 茹,\n",
      "Nearest to 前: 篪, 今, 谑, 眊, 涸, 轮, 来, 佣,\n",
      "Nearest to 红: 花, 褪, 烘, 炫, 蔻, 腮, 晕, 农,\n",
      "Nearest to 楼: 城, 栏, 蹬, 亭, 台, 阁, 厢, 峰,\n",
      "Nearest to UNK: 玕, }, 旎, 戟, ＿, 帽, 苒, 和,\n",
      "Nearest to 多: 浓, 牵, 恼, 谋, 有, 甚, 偏, 人,\n",
      "Nearest to 愁: 恨, 情, 闷, 凄, 伤, 离, 怨, 病,\n",
      "Nearest to 梅: 杏, 桃, 桂, 税, 灯, 梨, 雪, 棋,\n",
      "Nearest to 中: 里, 掷, 偿, 缑, 峤, 沅, 作, 迫,\n",
      "Nearest to 行: 载, 泯, 羁, 齑, 蓄, 淝, 五, 之,\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Average loss at step  282000 :  3.980182212948799\n",
      "Average loss at step  284000 :  4.024629727602005\n",
      "Average loss at step  286000 :  4.034160525560379\n",
      "Average loss at step  288000 :  4.028678762555122\n",
      "Average loss at step  290000 :  4.03739250767231\n",
      "Nearest to 看: 听, 把, 趁, 向, 对, 过, 窥, 见,\n",
      "Nearest to 东: 西, 北, 昭, 南, 岷, 紧, 侧, 沔,\n",
      "Nearest to 得: 取, 与, 饷, 个, 遣, 著, 札, 却,\n",
      "Nearest to 三: 五, 二, 四, 十, 六, 八, 九, 载,\n",
      "Nearest to 江: 淮, 水, 湖, 醡, 陇, 溪, 湘, 岭,\n",
      "Nearest to 醉: 酣, 笑, 瓣, 艳, 招, 醒, 粒, 嵬,\n",
      "Nearest to 来: 去, 戒, 乘, 今, 搅, 艇, 巢, 待,\n",
      "Nearest to 前: 篪, 谑, 涸, 今, 因, 努, 眊, 务,\n",
      "Nearest to 红: 腮, 粉, 花, 烘, 蓠, 褪, 炫, 蔻,\n",
      "Nearest to 楼: 栏, 城, 蹬, 阁, 珞, 山, 台, 阑,\n",
      "Nearest to UNK: 玕, }, 戟, 苒, 帽, 饵, 旎, 毕,\n",
      "Nearest to 多: 浓, 牵, 么, 偏, 患, 渚, 恼, 谋,\n",
      "Nearest to 愁: 恨, 情, 闷, 秋, 怨, 桃, 伤, 蝴,\n",
      "Nearest to 梅: 杏, 灯, 桂, 税, 梨, 桃, 棋, 醿,\n",
      "Nearest to 中: 里, 同, 缑, 峤, 婺, 沅, 掷, 偿,\n",
      "Nearest to 行: 载, 泯, 懊, 羁, 齑, 五, 政, 淝,\n",
      "Average loss at step  292000 :  3.9930430489778517\n",
      "Average loss at step  294000 :  4.023090917110443\n",
      "Average loss at step  296000 :  4.024605345726013\n",
      "Average loss at step  298000 :  3.97700191617012\n",
      "Average loss at step  300000 :  3.9261250859498977\n",
      "Nearest to 看: 听, 把, 趁, 向, 见, 过, 窥, 对,\n",
      "Nearest to 东: 西, 北, 昭, 南, 侧, 岷, 沔, 紧,\n",
      "Nearest to 得: 取, 著, 与, 饷, 个, 遣, 札, 了,\n",
      "Nearest to 三: 五, 二, 四, 十, 六, 九, 八, 载,\n",
      "Nearest to 江: 淮, 水, 湖, 溪, 陇, 醡, 湘, 岭,\n",
      "Nearest to 醉: 笑, 酣, 瓣, 妨, 病, 粒, 醒, 艳,\n",
      "Nearest to 来: 去, 戒, 今, 乘, 搅, 艇, 待, 汰,\n",
      "Nearest to 前: 篪, 来, 务, 眊, 先, 因, 佣, 谑,\n",
      "Nearest to 红: 烘, 花, 褪, 粉, 哨, 蔻, 腮, 蓠,\n",
      "Nearest to 楼: 城, 栏, 蹬, 亭, 阑, 珞, 山, 阁,\n",
      "Nearest to UNK: 玕, }, 戟, 旎, 锥, 居, 仰, 逃,\n",
      "Nearest to 多: 浓, 牵, 恼, 么, 偏, 异, 苦, 人,\n",
      "Nearest to 愁: 恨, 情, 闷, 凄, 蝴, 离, 伤, 却,\n",
      "Nearest to 梅: 杏, 灯, 花, 菊, 桂, 税, 桃, 戴,\n",
      "Nearest to 中: 里, 偿, 同, 掷, 缑, 沅, 阓, 谷,\n",
      "Nearest to 行: 载, 泯, 灌, 齑, 五, 蓄, 懊, 淝,\n",
      "Average loss at step  302000 :  3.9589240664243697\n",
      "Average loss at step  304000 :  3.934473897099495\n",
      "Average loss at step  306000 :  3.9371455060243608\n",
      "Average loss at step  308000 :  3.931265324115753\n",
      "Average loss at step  310000 :  3.9584495948553085\n",
      "Nearest to 看: 听, 把, 趁, 见, 向, 倩, 呼, 过,\n",
      "Nearest to 东: 西, 北, 昭, 南, 侧, 扁, 紧, 沔,\n",
      "Nearest to 得: 取, 著, 饷, 个, 与, 了, 能, 遣,\n",
      "Nearest to 三: 五, 二, 四, 十, 六, 载, 九, 它,\n",
      "Nearest to 江: 淮, 水, 湖, 溪, 陇, 醡, 湘, 渭,\n",
      "Nearest to 醉: 笑, 瓣, 酣, 妨, 病, 招, 粒, 醒,\n",
      "Nearest to 来: 去, 戒, 搅, 乘, 今, 鉏, 跛, 巢,\n",
      "Nearest to 前: 篪, 今, 谑, 务, 眊, 佣, 后, 俩,\n",
      "Nearest to 红: 褪, 腮, 蔻, 花, 烘, 炫, 蓠, 粉,\n",
      "Nearest to 楼: 城, 栏, 蹬, 亭, 阑, 阁, 台, 忱,\n",
      "Nearest to UNK: 玕, }, ＿, 旎, 磊, 戟, 苒, 帽,\n",
      "Nearest to 多: 浓, 牵, 谋, 恼, 偏, 有, 甚, 渚,\n",
      "Nearest to 愁: 恨, 情, 闷, 凄, 伤, 离, 却, 肺,\n",
      "Nearest to 梅: 杏, 桂, 桃, 税, 灯, 棋, 梨, 醿,\n",
      "Nearest to 中: 里, 掷, 偿, 缑, 峤, 沅, 同, 谷,\n",
      "Nearest to 行: 载, 齑, 泯, 淝, 羁, 懊, 灌, 政,\n",
      "Average loss at step  312000 :  3.967715159893036\n",
      "Average loss at step  314000 :  4.031021007180214\n",
      "Average loss at step  316000 :  4.013467220783234\n",
      "Average loss at step  318000 :  4.0260580025911334\n",
      "Average loss at step  320000 :  4.014389494776726\n",
      "Nearest to 看: 听, 趁, 向, 把, 对, 窥, 见, 过,\n",
      "Nearest to 东: 西, 南, 北, 昭, 紧, 岷, 沔, 斜,\n",
      "Nearest to 得: 取, 与, 饷, 个, 著, 札, 遣, 了,\n",
      "Nearest to 三: 五, 二, 四, 六, 十, 载, 九, 八,\n",
      "Nearest to 江: 淮, 水, 湖, 陇, 溪, 醡, 湘, 岭,\n",
      "Nearest to 醉: 酣, 笑, 瓣, 招, 艳, 醒, 困, 粒,\n",
      "Nearest to 来: 去, 戒, 乘, 今, 搅, 待, 巢, 艇,\n",
      "Nearest to 前: 篪, 谑, 因, 务, 眊, 努, 涸, 今,\n",
      "Nearest to 红: 腮, 蓠, 炫, 粉, 花, 褪, 烘, 蔻,\n",
      "Nearest to 楼: 栏, 城, 蹬, 阑, 珞, 山, 台, 阁,\n",
      "Nearest to UNK: 玕, }, 饵, 苒, 戟, 磊, 帽, 毕,\n",
      "Nearest to 多: 浓, 么, 牵, 偏, 患, 谋, 渚, 苦,\n",
      "Nearest to 愁: 恨, 情, 闷, 怨, 秋, 伤, 凄, 离,\n",
      "Nearest to 梅: 杏, 桂, 税, 灯, 梨, 桃, 醿, 棋,\n",
      "Nearest to 中: 里, 同, 缑, 婺, 峤, 谷, 沅, 浔,\n",
      "Nearest to 行: 载, 泯, 羁, 懊, 蓄, 齑, 政, 去,\n",
      "Average loss at step  322000 :  3.9821005989313125\n",
      "Average loss at step  324000 :  4.020627316474915\n",
      "Average loss at step  326000 :  4.012074407815933\n",
      "Average loss at step  328000 :  3.941528937101364\n",
      "Average loss at step  330000 :  3.926968341469765\n",
      "Nearest to 看: 听, 趁, 向, 把, 见, 呼, 窥, 对,\n",
      "Nearest to 东: 西, 昭, 南, 北, 紧, 侧, 岷, 沔,\n",
      "Nearest to 得: 取, 与, 著, 遣, 个, 饷, 了, 札,\n",
      "Nearest to 三: 五, 二, 四, 十, 六, 八, 九, 载,\n",
      "Nearest to 江: 淮, 水, 湖, 溪, 陇, 湘, 醡, 岭,\n",
      "Nearest to 醉: 酣, 笑, 瓣, 病, 妨, 粒, 醺, 醒,\n",
      "Nearest to 来: 去, 戒, 今, 乘, 搅, 艇, 待, 轮,\n",
      "Nearest to 前: 篪, 来, 先, 务, 因, 谑, 荛, 轮,\n",
      "Nearest to 红: 花, 烘, 褪, 粉, 哨, 蔻, 蓠, 讷,\n",
      "Nearest to 楼: 城, 栏, 蹬, 山, 阑, 珞, 亭, 堂,\n",
      "Nearest to UNK: 玕, }, ＿, 锥, 饵, 和, 逃, 戟,\n",
      "Nearest to 多: 浓, 牵, 人, 苦, 么, 恼, 患, 偏,\n",
      "Nearest to 愁: 恨, 情, 闷, 凄, 怨, 伤, 离, 蝴,\n",
      "Nearest to 梅: 杏, 灯, 桃, 菊, 桂, 花, 戴, 税,\n",
      "Nearest to 中: 里, 同, 偿, 缑, 掷, 沅, 谷, 崎,\n",
      "Nearest to 行: 载, 泯, 灌, 蓄, 五, 归, 淝, 齑,\n",
      "Average loss at step  332000 :  3.969465259552002\n",
      "Average loss at step  334000 :  3.9169000631570814\n",
      "Average loss at step  336000 :  3.927898968219757\n",
      "Average loss at step  338000 :  3.9374317115545274\n",
      "Average loss at step  340000 :  3.9402812353372574\n",
      "Nearest to 看: 听, 把, 趁, 向, 见, 倩, 呼, 问,\n",
      "Nearest to 东: 西, 北, 昭, 南, 侧, 紧, 厢, 岷,\n",
      "Nearest to 得: 取, 著, 与, 个, 饷, 了, 能, 我,\n",
      "Nearest to 三: 五, 二, 四, 十, 六, 九, 它, 载,\n",
      "Nearest to 江: 淮, 水, 溪, 湖, 醡, 陇, 湘, 渭,\n",
      "Nearest to 醉: 笑, 瓣, 酣, 妨, 病, 招, 粒, 醒,\n",
      "Nearest to 来: 去, 戒, 搅, 今, 乘, 鉏, 待, 艇,\n",
      "Nearest to 前: 篪, 谑, 今, 眊, 务, 因, 筮, 先,\n",
      "Nearest to 红: 花, 烘, 蓠, 褪, 蔻, 炫, 哨, 湔,\n",
      "Nearest to 楼: 城, 栏, 蹬, 亭, 阁, 台, 阑, 山,\n",
      "Nearest to UNK: 玕, }, ＿, 磊, 戟, 苒, 和, 毅,\n",
      "Nearest to 多: 浓, 牵, 谋, 有, 患, 伤, 恼, 渚,\n",
      "Nearest to 愁: 恨, 闷, 情, 凄, 伤, 肺, 羞, 离,\n",
      "Nearest to 梅: 杏, 桃, 桂, 税, 梨, 棋, 醿, 铩,\n",
      "Nearest to 中: 里, 掷, 同, 缑, 偿, 真, 谷, 熹,\n",
      "Nearest to 行: 载, 泯, 齑, 羁, 淝, 灌, 政, 蓄,\n",
      "Average loss at step  342000 :  3.9729944072961807\n",
      "Average loss at step  344000 :  4.014943298339844\n",
      "Average loss at step  346000 :  4.001588602542877\n",
      "Average loss at step  348000 :  4.034450295805931\n",
      "Average loss at step  350000 :  3.9995004125833513\n",
      "Nearest to 看: 听, 趁, 向, 把, 对, 窥, 见, 呼,\n",
      "Nearest to 东: 西, 北, 昭, 南, 侧, 紧, 江, 岷,\n",
      "Nearest to 得: 取, 与, 饷, 个, 著, 遣, 却, 札,\n",
      "Nearest to 三: 五, 四, 二, 六, 十, 九, 载, 八,\n",
      "Nearest to 江: 淮, 水, 湖, 溪, 陇, 醡, 湘, 岭,\n",
      "Nearest to 醉: 酣, 笑, 瓣, 招, 艳, 醒, 困, 粒,\n",
      "Nearest to 来: 去, 戒, 归, 待, 乘, 今, 艇, 搅,\n",
      "Nearest to 前: 篪, 因, 谑, 务, 努, 涸, 眊, 后,\n",
      "Nearest to 红: 粉, 蓠, 腮, 花, 烘, 蔻, 褪, 炫,\n",
      "Nearest to 楼: 城, 栏, 蹬, 山, 阑, 珞, 台, 阁,\n",
      "Nearest to UNK: 玕, 饵, }, 毕, 锥, 磊, 苒, 逃,\n",
      "Nearest to 多: 浓, 牵, 么, 偏, 何, 患, 伤, 渚,\n",
      "Nearest to 愁: 恨, 情, 闷, 怨, 凄, 秋, 蝴, 桃,\n",
      "Nearest to 梅: 杏, 税, 桃, 桂, 灯, 梨, 戴, 醿,\n",
      "Nearest to 中: 里, 婺, 缑, 沅, 谷, 同, 掷, 峤,\n",
      "Nearest to 行: 载, 泯, 齑, 羁, 政, 淝, 懊, 灌,\n",
      "Average loss at step  352000 :  3.985002393245697\n",
      "Average loss at step  354000 :  4.011184553384781\n",
      "Average loss at step  356000 :  4.009685826659203\n",
      "Average loss at step  358000 :  3.907566185712814\n",
      "Average loss at step  360000 :  3.943542205572128\n",
      "Nearest to 看: 听, 向, 趁, 把, 呼, 见, 对, 窥,\n",
      "Nearest to 东: 西, 昭, 北, 南, 紧, 侧, 岷, 斜,\n",
      "Nearest to 得: 取, 著, 与, 遣, 个, 饷, 了, 札,\n",
      "Nearest to 三: 五, 二, 四, 十, 六, 九, 八, 载,\n",
      "Nearest to 江: 淮, 水, 湖, 溪, 陇, 湘, 醡, 岭,\n",
      "Nearest to 醉: 酣, 瓣, 笑, 病, 妨, 粒, 招, 醺,\n",
      "Nearest to 来: 去, 今, 戒, 乘, 搅, 艇, 汰, 待,\n",
      "Nearest to 前: 篪, 来, 荛, 务, 谑, 先, 眊, 旧,\n",
      "Nearest to 红: 花, 烘, 褪, 蓠, 哨, 蔻, 粉, 绿,\n",
      "Nearest to 楼: 城, 栏, 蹬, 山, 阑, 亭, 珞, 堂,\n",
      "Nearest to UNK: 玕, }, 锥, ＿, 居, 逃, 张, 氏,\n",
      "Nearest to 多: 浓, 牵, 么, 伤, 患, 苦, 年, 恼,\n",
      "Nearest to 愁: 恨, 闷, 情, 凄, 伤, 怨, 秋, 蝴,\n",
      "Nearest to 梅: 杏, 桃, 灯, 税, 桂, 菊, 戴, 花,\n",
      "Nearest to 中: 里, 同, 偿, 缑, 沅, 掷, 谷, 婺,\n",
      "Nearest to 行: 泯, 灌, 载, 五, 归, 遏, 淝, 蓄,\n",
      "Average loss at step  362000 :  3.9533434742689133\n",
      "Average loss at step  364000 :  3.9007186912298204\n",
      "Average loss at step  366000 :  3.9263668562173843\n",
      "Average loss at step  368000 :  3.9412505177855492\n",
      "Average loss at step  370000 :  3.9254851726293563\n",
      "Nearest to 看: 听, 趁, 把, 见, 向, 呼, 倩, 图,\n",
      "Nearest to 东: 西, 北, 昭, 南, 侧, 瑟, 斜, 扁,\n",
      "Nearest to 得: 取, 著, 与, 能, 个, 饷, 了, 遣,\n",
      "Nearest to 三: 五, 四, 二, 六, 十, 九, 载, 它,\n",
      "Nearest to 江: 淮, 水, 溪, 湖, 陇, 醡, 湘, 渭,\n",
      "Nearest to 醉: 笑, 酣, 瓣, 妨, 招, 病, 粒, 卓,\n",
      "Nearest to 来: 去, 戒, 搅, 今, 筼, 乘, 鉏, 跛,\n",
      "Nearest to 前: 篪, 谑, 今, 筮, 眊, 因, 务, 努,\n",
      "Nearest to 红: 花, 蓠, 烘, 褪, 炫, 哨, 蔻, 湔,\n",
      "Nearest to 楼: 城, 栏, 蹬, 山, 阑, 珞, 亭, 台,\n",
      "Nearest to UNK: 玕, }, ＿, 磊, 析, 帽, 戟, 锥,\n",
      "Nearest to 多: 浓, 牵, 有, 谋, 患, 渚, 苦, 偏,\n",
      "Nearest to 愁: 恨, 闷, 情, 凄, 忧, 肺, 伤, 怨,\n",
      "Nearest to 梅: 杏, 桃, 桂, 税, 灯, 梨, 菊, 铩,\n",
      "Nearest to 中: 里, 掷, 谷, 缑, 同, 熹, 沅, 偿,\n",
      "Nearest to 行: 泯, 载, 灌, 羁, 政, 蓄, 齑, 淝,\n",
      "Average loss at step  372000 :  3.963502641797066\n",
      "Average loss at step  374000 :  4.009977615714073\n",
      "Average loss at step  376000 :  3.9879574720859527\n",
      "Average loss at step  378000 :  4.018731695652008\n",
      "Average loss at step  380000 :  4.003426855444908\n",
      "Nearest to 看: 听, 趁, 向, 把, 呼, 对, 窥, 见,\n",
      "Nearest to 东: 西, 北, 昭, 南, 侧, 紧, 岷, 江,\n",
      "Nearest to 得: 取, 与, 饷, 著, 札, 个, 却, 遣,\n",
      "Nearest to 三: 五, 四, 二, 六, 十, 载, 八, 九,\n",
      "Nearest to 江: 淮, 水, 湖, 溪, 陇, 醡, 湘, 岭,\n",
      "Nearest to 醉: 酣, 笑, 瓣, 招, 醒, 困, 病, 醺,\n",
      "Nearest to 来: 去, 戒, 待, 艇, 搅, 乘, 又, 今,\n",
      "Nearest to 前: 篪, 因, 务, 谑, 努, 后, 眊, 涸,\n",
      "Nearest to 红: 蓠, 花, 粉, 腮, 烘, 哨, 蔻, 炫,\n",
      "Nearest to 楼: 城, 栏, 蹬, 山, 阑, 台, 珞, 阁,\n",
      "Nearest to UNK: 玕, }, ＿, 锥, 饵, 帽, 毕, 磊,\n",
      "Nearest to 多: 浓, 年, 牵, 何, 患, 么, 偏, 渚,\n",
      "Nearest to 愁: 恨, 情, 闷, 秋, 怨, 凄, 桃, 伤,\n",
      "Nearest to 梅: 杏, 桃, 灯, 税, 桂, 梨, 戴, 菊,\n",
      "Nearest to 中: 里, 同, 谷, 缑, 婺, 峤, 沅, 浔,\n",
      "Nearest to 行: 载, 齑, 政, 羁, 泯, 灌, 懊, 遏,\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Average loss at step  382000 :  3.9708234467506407\n",
      "Average loss at step  384000 :  4.0076991876363754\n",
      "Average loss at step  386000 :  3.996733631372452\n",
      "Average loss at step  388000 :  3.887886680841446\n",
      "Average loss at step  390000 :  3.927555448293686\n",
      "Nearest to 看: 听, 趁, 向, 把, 呼, 见, 对, 拈,\n",
      "Nearest to 东: 西, 北, 南, 昭, 侧, 紧, 岷, 斜,\n",
      "Nearest to 得: 取, 著, 与, 遣, 札, 个, 饷, 有,\n",
      "Nearest to 三: 五, 二, 四, 十, 六, 九, 八, 一,\n",
      "Nearest to 江: 淮, 水, 湖, 溪, 陇, 湘, 岭, 醡,\n",
      "Nearest to 醉: 酣, 瓣, 笑, 妨, 病, 醺, 招, 粒,\n",
      "Nearest to 来: 去, 今, 戒, 乘, 艇, 搅, 又, 待,\n",
      "Nearest to 前: 篪, 务, 来, 先, 谑, 荛, 因, 今,\n",
      "Nearest to 红: 花, 烘, 褪, 蓠, 粉, 绿, 哨, 蔻,\n",
      "Nearest to 楼: 城, 栏, 蹬, 阑, 山, 珞, 堂, 亭,\n",
      "Nearest to UNK: 玕, }, ＿, 锥, 氏, 逃, 氐, 析,\n",
      "Nearest to 多: 浓, 牵, 苦, 伤, 患, 谋, 年, 偏,\n",
      "Nearest to 愁: 恨, 闷, 情, 凄, 秋, 伤, 蝴, 怨,\n",
      "Nearest to 梅: 杏, 桃, 灯, 税, 菊, 桂, 戴, 鹃,\n",
      "Nearest to 中: 里, 同, 缑, 经, 沅, 偿, 掷, 谷,\n",
      "Nearest to 行: 载, 泯, 五, 遏, 灌, 之, 政, 归,\n",
      "Average loss at step  392000 :  3.9587952497005463\n",
      "Average loss at step  394000 :  3.894076820373535\n",
      "Average loss at step  396000 :  3.9237390204668046\n",
      "Average loss at step  398000 :  3.937573488473892\n",
      "Average loss at step  400000 :  3.9269156231880187\n",
      "Nearest to 看: 听, 趁, 把, 向, 呼, 见, 倩, 图,\n",
      "Nearest to 东: 西, 北, 昭, 南, 侧, 衡, 斜, 瑟,\n",
      "Nearest to 得: 取, 著, 与, 饷, 个, 能, 了, 札,\n",
      "Nearest to 三: 五, 二, 四, 六, 十, 九, 亿, 载,\n",
      "Nearest to 江: 淮, 水, 溪, 湖, 陇, 醡, 湘, 渭,\n",
      "Nearest to 醉: 笑, 酣, 瓣, 妨, 病, 粒, 招, 醺,\n",
      "Nearest to 来: 戒, 去, 今, 搅, 待, 艇, 跛, 汰,\n",
      "Nearest to 前: 篪, 谑, 因, 今, 务, 筮, 眊, 努,\n",
      "Nearest to 红: 花, 蓠, 烘, 褪, 哨, 腮, 炫, 湔,\n",
      "Nearest to 楼: 城, 栏, 蹬, 山, 堂, 阑, 亭, 榭,\n",
      "Nearest to UNK: 玕, }, ＿, 帽, 磊, 析, 锥, 求,\n",
      "Nearest to 多: 浓, 牵, 有, 谋, 秾, 苦, 渚, 偏,\n",
      "Nearest to 愁: 恨, 闷, 情, 凄, 忧, 伤, 肺, 桃,\n",
      "Nearest to 梅: 杏, 桃, 税, 桂, 梨, 灯, 菊, 铩,\n",
      "Nearest to 中: 里, 同, 掷, 缑, 谷, 熹, 经, 婺,\n",
      "Nearest to 行: 齑, 载, 政, 泯, 蓄, 遏, 羁, 灌,\n",
      "/home/lusha/DeepLearn/WK11/tsne.png\n"
     ]
    }
   ],
   "source": [
    "# Copyright 2015 The TensorFlow Authors. All Rights Reserved.\n",
    "#\n",
    "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
    "# you may not use this file except in compliance with the License.\n",
    "# You may obtain a copy of the License at\n",
    "#\n",
    "#     http://www.apache.org/licenses/LICENSE-2.0\n",
    "#\n",
    "# Unless required by applicable law or agreed to in writing, software\n",
    "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
    "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
    "# See the License for the specific language governing permissions and\n",
    "# limitations under the License.\n",
    "# ==============================================================================\n",
    "\"\"\"Basic word2vec example.\"\"\"\n",
    "\n",
    "from __future__ import absolute_import\n",
    "from __future__ import division\n",
    "from __future__ import print_function\n",
    "\n",
    "import collections\n",
    "import math\n",
    "import os\n",
    "import random\n",
    "from tempfile import gettempdir\n",
    "import zipfile\n",
    "\n",
    "import numpy as np\n",
    "from six.moves import urllib\n",
    "from six.moves import xrange  # pylint: disable=redefined-builtin\n",
    "import tensorflow as tf\n",
    "import json\n",
    "\n",
    "'''\n",
    "# Step 1: Download the data.\n",
    "\n",
    "url = 'http://mattmahoney.net/dc/'\n",
    "\n",
    "\n",
    "# pylint: disable=redefined-outer-name\n",
    "def maybe_download(filename, expected_bytes):\n",
    "  \"\"\"Download a file if not present, and make sure it's the right size.\"\"\"\n",
    "  local_filename = os.path.join(gettempdir(), filename)\n",
    "  if not os.path.exists(local_filename):\n",
    "    local_filename, _ = urllib.request.urlretrieve(url + filename,\n",
    "                                                   local_filename)\n",
    "  statinfo = os.stat(local_filename)\n",
    "  if statinfo.st_size == expected_bytes:\n",
    "    print('Found and verified', filename)\n",
    "  else:\n",
    "    print(statinfo.st_size)\n",
    "    raise Exception('Failed to verify ' + local_filename +\n",
    "                    '. Can you get to it with a browser?')\n",
    "  return local_filename\n",
    "\n",
    "\n",
    "filename = maybe_download('text8.zip', 31344016)\n",
    "\n",
    "\n",
    "# Read the data into a list of strings.\n",
    "def read_data(filename):\n",
    "  \"\"\"Extract the first file enclosed in a zip file as a list of words.\"\"\"\n",
    "  with zipfile.ZipFile(filename) as f:\n",
    "    data = tf.compat.as_str(f.read(f.namelist()[0])).split()\n",
    "  return data\n",
    "\n",
    "vocabulary = read_data(filename)\n",
    "print('Data size', len(vocabulary))\n",
    "'''\n",
    "\n",
    "# Step 1: Read the data\n",
    "file_object = open('QuanSongCi.txt')\n",
    "try:\n",
    "    file_context = file_object.read()\n",
    "finally:\n",
    "    file_object.close()\n",
    "vocabulary = list(file_context)\n",
    "\n",
    "# Step 2: Build the dictionary and replace rare words with UNK token.\n",
    "vocabulary_size = 5001\n",
    "\n",
    "\n",
    "def build_dataset(words, n_words):\n",
    "  \"\"\"Process raw inputs into a dataset.\"\"\"\n",
    "  count = [['UNK', -1]]\n",
    "  count.extend(collections.Counter(words).most_common(n_words - 1))\n",
    "  dictionary = dict()\n",
    "  for word, _ in count:\n",
    "    dictionary[word] = len(dictionary)\n",
    "  data = list()\n",
    "  unk_count = 0\n",
    "  for word in words:\n",
    "    index = dictionary.get(word, 0)\n",
    "    if index == 0:  # dictionary['UNK']\n",
    "      unk_count += 1\n",
    "    data.append(index)\n",
    "  count[0][1] = unk_count\n",
    "  reversed_dictionary = dict(zip(dictionary.values(), dictionary.keys()))\n",
    "  return data, count, dictionary, reversed_dictionary\n",
    "\n",
    "# Filling 4 global variables:\n",
    "# data - list of codes (integers from 0 to vocabulary_size-1).\n",
    "#   This is the original text but words are replaced by their codes\n",
    "# count - map of words(strings) to count of occurrences\n",
    "# dictionary - map of words(strings) to their codes(integers)\n",
    "# reverse_dictionary - maps codes(integers) to words(strings)\n",
    "data, count, dictionary, reverse_dictionary = build_dataset(vocabulary,\n",
    "                                                            vocabulary_size)\n",
    "\n",
    "#save to json\n",
    "with open(\"dictionary.json\", \"w\") as f1:\n",
    "  json.dump(dictionary, f1, ensure_ascii=False)\n",
    "with open(\"reverse_dictionary.json\", \"w\") as f2:\n",
    "  json.dump(reverse_dictionary, f2, ensure_ascii=False)\n",
    "\n",
    "\n",
    "\n",
    "del vocabulary  # Hint to reduce memory.\n",
    "print('Most common words (+UNK)', count[:5])\n",
    "print('Sample data', data[:10], [reverse_dictionary[i] for i in data[:10]])\n",
    "\n",
    "data_index = 0\n",
    "\n",
    "# Step 3: Function to generate a training batch for the skip-gram model.\n",
    "def generate_batch(batch_size, num_skips, skip_window):\n",
    "  global data_index\n",
    "  assert batch_size % num_skips == 0\n",
    "  assert num_skips <= 2 * skip_window\n",
    "  batch = np.ndarray(shape=(batch_size), dtype=np.int32)\n",
    "  labels = np.ndarray(shape=(batch_size, 1), dtype=np.int32)\n",
    "  span = 2 * skip_window + 1  # [ skip_window target skip_window ]\n",
    "  buffer = collections.deque(maxlen=span)\n",
    "  if data_index + span > len(data):\n",
    "    data_index = 0\n",
    "  buffer.extend(data[data_index:data_index + span])\n",
    "  data_index += span\n",
    "  for i in range(batch_size // num_skips):\n",
    "    context_words = [w for w in range(span) if w != skip_window]\n",
    "    words_to_use = random.sample(context_words, num_skips)\n",
    "    for j, context_word in enumerate(words_to_use):\n",
    "      batch[i * num_skips + j] = buffer[skip_window]\n",
    "      labels[i * num_skips + j, 0] = buffer[context_word]\n",
    "    if data_index == len(data):\n",
    "      for word in data[:span]:\n",
    "        buffer.append(word)\n",
    "      data_index = span\n",
    "    else:\n",
    "      buffer.append(data[data_index])\n",
    "      data_index += 1\n",
    "  # Backtrack a little bit to avoid skipping words in the end of a batch\n",
    "  data_index = (data_index + len(data) - span) % len(data)\n",
    "  return batch, labels\n",
    "\n",
    "batch, labels = generate_batch(batch_size=8, num_skips=2, skip_window=1)\n",
    "for i in range(8):\n",
    "  print(batch[i], reverse_dictionary[batch[i]],\n",
    "        '->', labels[i, 0], reverse_dictionary[labels[i, 0]])\n",
    "\n",
    "# Step 4: Build and train a skip-gram model.\n",
    "\n",
    "batch_size = 128\n",
    "embedding_size = 128  # Dimension of the embedding vector.\n",
    "skip_window = 1       # How many words to consider left and right.\n",
    "num_skips = 2         # How many times to reuse an input to generate a label.\n",
    "num_sampled = 64      # Number of negative examples to sample.\n",
    "\n",
    "# We pick a random validation set to sample nearest neighbors. Here we limit the\n",
    "# validation samples to the words that have a low numeric ID, which by\n",
    "# construction are also the most frequent. These 3 variables are used only for\n",
    "# displaying model accuracy, they don't affect calculation.\n",
    "valid_size = 16     # Random set of words to evaluate similarity on.\n",
    "valid_window = 100  # Only pick dev samples in the head of the distribution.\n",
    "valid_examples = np.random.choice(valid_window, valid_size, replace=False)\n",
    "\n",
    "\n",
    "graph = tf.Graph()\n",
    "\n",
    "with graph.as_default():\n",
    "\n",
    "  # Input data.\n",
    "  train_inputs = tf.placeholder(tf.int32, shape=[batch_size])\n",
    "  train_labels = tf.placeholder(tf.int32, shape=[batch_size, 1])\n",
    "  valid_dataset = tf.constant(valid_examples, dtype=tf.int32)\n",
    "\n",
    "  # Ops and variables pinned to the CPU because of missing GPU implementation\n",
    "  with tf.device('/cpu:0'):\n",
    "    # Look up embeddings for inputs.\n",
    "    embeddings = tf.Variable(\n",
    "        tf.random_uniform([vocabulary_size, embedding_size], -1.0, 1.0))\n",
    "    embed = tf.nn.embedding_lookup(embeddings, train_inputs)\n",
    "\n",
    "    # Construct the variables for the NCE loss\n",
    "    nce_weights = tf.Variable(\n",
    "        tf.truncated_normal([vocabulary_size, embedding_size],\n",
    "                            stddev=1.0 / math.sqrt(embedding_size)))\n",
    "    nce_biases = tf.Variable(tf.zeros([vocabulary_size]))\n",
    "\n",
    "  # Compute the average NCE loss for the batch.\n",
    "  # tf.nce_loss automatically draws a new sample of the negative labels each\n",
    "  # time we evaluate the loss.\n",
    "  # Explanation of the meaning of NCE loss:\n",
    "  #   http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/\n",
    "  loss = tf.reduce_mean(\n",
    "      tf.nn.nce_loss(weights=nce_weights,\n",
    "                     biases=nce_biases,\n",
    "                     labels=train_labels,\n",
    "                     inputs=embed,\n",
    "                     num_sampled=num_sampled,\n",
    "                     num_classes=vocabulary_size))\n",
    "\n",
    "  # Construct the SGD optimizer using a learning rate of 1.0.\n",
    "  optimizer = tf.train.GradientDescentOptimizer(1.0).minimize(loss)\n",
    "\n",
    "  # Compute the cosine similarity between minibatch examples and all embeddings.\n",
    "  norm = tf.sqrt(tf.reduce_sum(tf.square(embeddings), 1, keep_dims=True))\n",
    "  normalized_embeddings = embeddings / norm\n",
    "  valid_embeddings = tf.nn.embedding_lookup(\n",
    "      normalized_embeddings, valid_dataset)\n",
    "  similarity = tf.matmul(\n",
    "      valid_embeddings, normalized_embeddings, transpose_b=True)\n",
    "\n",
    "  # Add variable initializer.\n",
    "  init = tf.global_variables_initializer()\n",
    "\n",
    "# Step 5: Begin training.\n",
    "num_steps = 400001\n",
    "\n",
    "with tf.Session(graph=graph) as session:\n",
    "  # We must initialize all variables before we use them.\n",
    "  init.run()\n",
    "  print('Initialized')\n",
    "\n",
    "  average_loss = 0\n",
    "  for step in xrange(num_steps):\n",
    "    batch_inputs, batch_labels = generate_batch(\n",
    "        batch_size, num_skips, skip_window)\n",
    "    feed_dict = {train_inputs: batch_inputs, train_labels: batch_labels}\n",
    "\n",
    "    # We perform one update step by evaluating the optimizer op (including it\n",
    "    # in the list of returned values for session.run()\n",
    "    _, loss_val = session.run([optimizer, loss], feed_dict=feed_dict)\n",
    "    average_loss += loss_val\n",
    "\n",
    "    if step % 2000 == 0:\n",
    "      if step > 0:\n",
    "        average_loss /= 2000\n",
    "      # The average loss is an estimate of the loss over the last 2000 batches.\n",
    "      print('Average loss at step ', step, ': ', average_loss)\n",
    "      average_loss = 0\n",
    "\n",
    "    # Note that this is expensive (~20% slowdown if computed every 500 steps)\n",
    "    if step % 10000 == 0:\n",
    "      sim = similarity.eval()\n",
    "      for i in xrange(valid_size):\n",
    "        valid_word = reverse_dictionary[valid_examples[i]]\n",
    "        top_k = 8  # number of nearest neighbors\n",
    "        nearest = (-sim[i, :]).argsort()[1:top_k + 1]\n",
    "        log_str = 'Nearest to %s:' % valid_word\n",
    "        for k in xrange(top_k):\n",
    "          close_word = reverse_dictionary[nearest[k]]\n",
    "          log_str = '%s %s,' % (log_str, close_word)\n",
    "        print(log_str)\n",
    "  final_embeddings = normalized_embeddings.eval()\n",
    "# save\n",
    "np.save('embedding.npy', final_embeddings)\n",
    "\n",
    "# Step 6: Visualize the embeddings.\n",
    "\n",
    "\n",
    "# pylint: disable=missing-docstring\n",
    "# Function to draw visualization of distance between embeddings.\n",
    "def plot_with_labels(low_dim_embs, labels, filename):\n",
    "  assert low_dim_embs.shape[0] >= len(labels), 'More labels than embeddings'\n",
    "  plt.figure(figsize=(18, 18))  # in inches\n",
    "\n",
    "  #plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签\n",
    "  #plt.rcParams['font.family']='sans-serif'\n",
    "  #plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号\n",
    "\n",
    "\n",
    "  for i, label in enumerate(labels):\n",
    "    x, y = low_dim_embs[i, :]\n",
    "    plt.scatter(x, y)\n",
    "    plt.annotate(label,\n",
    "                 xy=(x, y),\n",
    "                 xytext=(5, 2),\n",
    "                 textcoords='offset points',\n",
    "                 ha='right',\n",
    "                 va='bottom')\n",
    "\n",
    "  plt.savefig(filename)\n",
    "\n",
    "try:\n",
    "  # pylint: disable=g-import-not-at-top\n",
    "  from sklearn.manifold import TSNE\n",
    "  import matplotlib.pyplot as plt\n",
    "\n",
    "  tsne = TSNE(perplexity=30, n_components=2, init='pca', n_iter=5000, method='exact')\n",
    "  plot_only = 500\n",
    "  low_dim_embs = tsne.fit_transform(final_embeddings[:plot_only, :])\n",
    "  labels = [reverse_dictionary[i] for i in xrange(plot_only)]\n",
    "  plot_with_labels(low_dim_embs, labels, os.path.join(os.getcwd(), 'tsne.png'))\n",
    "  print(os.path.join(os.getcwd(), 'tsne.png'))\n",
    "\n",
    "except ImportError as ex:\n",
    "  print('Please install sklearn, matplotlib, and scipy to show embeddings.')\n",
    "  print(ex)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.7rc1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
